/**************************************************************************
* This file is part of Hawkengine.
*
* Hawkengine is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Hawkengine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Hawkengine.  If not, see <http://www.gnu.org/licenses/>.
**************************************************************************/

#ifndef _COLOR_H_
#define _COLOR_H_

/**************************************************************************
* Dependencies
**************************************************************************/
#include "engine/common.h"
 
/**************************************************************************
* Preprocessing
**************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif

/**************************************************************************
* Types
**************************************************************************/
typedef struct
{
  unsigned char r;
  unsigned char g;
  unsigned char b;
  unsigned char a;
} color_type;

/**************************************************************************
* Variables
**************************************************************************/
extern const color_type BLACK;
extern const color_type WHITE;
extern const color_type RED;
extern const color_type GREEN;
extern const color_type BLUE;
extern const color_type YELLOW;
extern const color_type MAGENTA;
extern const color_type CYAN;

extern const color_type GOLD;
extern const color_type SILVER;
extern const color_type BRONZE;

extern const color_type OVERLAY_COLOR;
extern const color_type ACTIVE_TEXT_COLORS[];
extern const color_type DEBUG_BG_COLOR;
extern const color_type DEBUG_FG_COLOR;

/**************************************************************************
* Static Variables
**************************************************************************/

/**************************************************************************
* Function Prototypes
**************************************************************************/
void color_blend(const color_type* color1, const color_type* color2,
                 float divider, color_type* color);
BOOL color_matching(const color_type* color1, const color_type* color2);

/**************************************************************************
* Function Implementations
**************************************************************************/


#ifdef __cplusplus
}
#endif

#endif
